package com.siashan.unipay4j.wx;

import com.siashan.unipay4j.core.IPayConfig;
import com.siashan.unipay4j.wx.sdk.WXPayConstants;
import lombok.Data;

/**
 * 微信支付配置
 *
 * @author  siashan
 * @since  v1.0.1
 **/
@Data
public class WxPayConfig implements IPayConfig {
    /**
     * 公众号appid
     */
    private String appId;

    /**
     * 商户号
     */
    private String mchId;

    /**
     * key
     */
    private String key;

    /**
     * 签名类型
     */
    private String signType = WXPayConstants.HMACSHA256;


    /**
     * 回调地址
     */
    private String notifyurl;

    /**
     * 是否使用沙箱环境
     */
    private boolean useSandbox;


    /**
     * 是否主动上报
     */
    private boolean autoReport;

    /**
     * API证书存放路径
     */
     private String certPath;

    /**
     * RSA加密公钥
     */
     private String rsaPubKey;

    /**
     * 支付接口版本号
     *
     * @apiNote 可选值  v2,v3,默认v2
     * @since 2.0.1
     */
     private String version;

    /**
     * 支付接口V3 商户 key
     * @since 2.0.1
     */
     private String v3Key;

    /**
     * 证书序列号
     *
     * @apiNote v3 版本支持
     * @since 2.0.1
     */
    private String merchantSerialNumber;

    /**
     * 商户私钥证书
     *
     * @apiNote v3 版本支持
     * @since 2.0.1
     */
    private String merchantPrivateKeyPath;

    /**
     * 微信公钥证书
     *
     * V3版本支持
     */
    private String wxPublicKeyPath;
    /**
     * 微信公钥证书号
     *
     * V3版本支持
     */
    private String wxPublicKeyId;

    /**
     * 公钥类型
     *
     * V3版本支持
     *
     * 可选项 平台公钥，微信公钥
     */
    private String publicKeyType;


    private   int httpConnectTimeoutMs = 6*1000;
    private   int httpReadTimeoutMs = 8*1000;
}
